#pragma once

#include <mutex>
#include <condition_variable>

class CSemaphore
{
public:
	CSemaphore(long count = 0);
	void Signal();
	void Wait();

private:
	std::mutex _mutex;
	std::condition_variable _cv;
	long m_count;
};
